Postmortems have two benefits:
- Provide others with insights who may go down a similar path.
- Reflect on your work and learn from it.
I’ve read somewhere about how important postmortems are to self and others, and don’t want to miss the opportunity. As such, here is an initial postmortem on the tutoring service focusing exclusively on programming.
I may do another postmortem as I reflect on more things.
Stakeholders
The tutoring service eventually served five different groups of patrons:
- College/University Students of Computer Science, Software Engineering, Graphic Design and (at an introductory level) Data Science
- Students of Coding Bootcamps/Technical Training Programs in computer programming
- Small Businesses needing websites or other custom programming solutions
- Parents desiring their children to learn programming
- Self-learners
To figure out what went right and what could be improved, I choose to focus this postmortem in the lens of each of these groups of patrons. I also plan on doing separate articles for each group on tips I have for them.
Also, as one reads this article, note that this was written in July of 2024, and for future reference, some topics may change.
Lessons Learned
Tutoring University Students
Tutoring is highly rewarding and challenging. It will hone your skills and help you review the theoretical concepts. However, universities generally have a weakness in providing practical experience of the craft, and students would highly benefit from completing their own projects, or pursuing internships or other professional opportunities during their studies.
Tutoring was highly seasonal. Students would require lots of time at certain times of the year, then be off for summer/spring/winter break.
Tutoring university students also helps keep one relevant with concepts taught in university. Universities may have a slight disconnect with what employers may require. Courses in AI are typically only offered as part of the curriculum for Data Science students, even in 2024. But one topic which I feel may be way more important than AI to an employer is deployment, such as experience with Docker, AWS, Kubernetes, Azure, Basic System Admin on Linux/BSD, etc.
I’ve thought for a long time that other college students ought to consider tutoring. I thought quite a bit about hiring other tutors for school time to meet the large demand.
Students of Coding Bootcamps
The lessons here are very similar to those of University Students. Many of these coding bootcamps though focus specifically on placing people in jobs. They highly focus on their Python or JavaScript, and teach HTML, CSS, React, or some other frontend. If they use JavaScript, many teach either ExpressJS or NextJS. If they teach Python, students mostly learn Flask, though infrequently some students are learning Django. Students also get exposed to SQL very fast, or learn a framework such as SQLAlchemy or Sequelize. MongoDB is also very popular.
This is less seasonal, as these coding bootcamps generally choose to operate at all times of the year.
These coding bootcamps have an advantage over universities in having students complete projects. These projects may be slightly more practical in nature, though are still quite theoretical.
I think having this service help students with projects more, or giving them ideas, may help to increase practical knowledge. Especially diving more into SQL, Deployment concepts such as Docker, Linux, etc. would serve students well.
Small Businesses
It’s difficult to have a cookie cutter solution for all businesses. There are so many tools and website builders out there already. When someone hires a programmer, they generally want specific help.
More programmers ought to put ads out offering their assistance with small businesses, if their situation permits. It’s hard for small businesses to find programmers. The workflow for small businesses can be very busy for a few months, and then drop off, then pick up again. My goal was always to help as much, or as little as these businesses needed.
And its not just programming. When you discuss work with a small business, you are sometimes playing business analyst, architect and programmer at the same time. You need to elicit requirements, and then deliver a solution. Businesses want things done right, and very quickly. And it can be difficult to predict how long features will take, and whether bugs will arise. Ample time should be dedicated to deliver solutions.
In addition, revision will be required. I like to have a working prototype of the solution, and then revise it. I find this to be the most productive. The business owner then has a working version of their desired software, and can then revise it to further deliver their vision.
Testing is also incredibly important to ensure quality and functionality.
I would always work for an hourly rate which I felt was affordable and reasonable. Many small businesses would insist on a higher rate, which I am very grateful for.
Some individuals would want to give equity instead of payment, which I always declined. But it is interesting how offering freelance programming could possibly be a vehicle for something like that.
Helping businesses is also an amazing networking tool! You have actual experience with working on projects. LinkedIn is an amazing tool to stay in touch, and continue to answer questions.
Parents of Aspiring Programmers
Perhaps some of the most rewarding work was in this category. I think in general, children anywhere between 10 to 18 are in the right age to learn programming, but there are exceptions. And perhaps things like Scratch are amazing tools for children between 7-15 (or the amazing kids/adults older than that who push Scratch to its absolute limits).
Python is an incredibly accessible language. It’s so powerful and is so productive. I have found Python to be the best language to introduce to not just children, but anyone, as you can do so many things with it. With very few lines, you can check stocks, make games, build websites, do research, make powerful CLI tools, teach concepts in computer science, etc.
I am so grateful for all the developers of Python who have given us such an amazing language to work with, you’ve truly changed the world.
Children are normally very smart, and figure things out well. They are so creative. They don’t often know how difficult things are, and that’s okay. Sometimes people think things are so difficult, but they just need to try them.
Though one thing I’ve found is children almost always have less attention spans than adults. This has forced me to make programming projects much shorter, and more gratifying. It’s actually influenced my other projects to try to simplify things and get them running faster.
Self-Learners
They’re on YouTube 😂.
How do I reach these people? They aren’t browsing Craigslist. They aren’t searching for tutoring.
Self-Learners are hungry. Self-Learners need quality resources. They need projects and tutorials that work. They have projects and dreams they want to achieve, and scan the internet for resources.
A lot of people think the internet is so big and everyone’s already done everything. I think the opposite: The internet is extremely small and we as a human race have barely done anything on the internet. There is so much to do if we are to fill the internet with quality information.
This was my last group of patrons which I tried to pursue before closing this service. I may continue this at a future date, if circumstance permits, though I want to focus 100% on this new opportunity in my career.
And I really learned a lot from doing YouTube! It forced me to learn how to present myself, and how to edit videos. It was great practice for learning how to market things. If you want to practice marketing, start a YouTube channel and try to get really good at making great thumbnails which will attract clicks. And try to then create quality content people will like. YouTube truly teaches you new skills.
One area I could have improved is giving people more resources. Maybe by adding guides on my website.
Conclusion
I think I will do another postmortem on this service to further reflect and gain insights. Maybe from a different angle other than just patrons. Maybe exploring other stakeholders.
I feel in some respects that I’ve stopped learning as much from tutoring students. After 3 years, it is just the same courses over and over. It is time to move on! I’m incredibly grateful for all of the clients, students, self-learners and parents who gave me the opportunity to work with them, and to all of them I say thank you!
Thank you for reading this postmortem and I wish you and your families the best of success in your careers and lives!
Alexander Farrell
18 July 2024